#ifndef __BOUND_H__
#define __BOUND_H__

#include "Plane.h"
class Matrix3;

class Bound
{
public:
	Bound();

	Vector3& center();
	Real& radius();

	Bound& operator= ( const Bound& bound );
	Bound& operator+= ( const Bound& bound );

	void compute_from_data( unsigned int vertices, const Vector3* data );

	Bound transform_by( const Matrix3& rotate, const Vector3& translate, Real scale ) const;

	Plane::Side which_side( const Plane& plane ) const;

protected:
	Vector3 m_center;
	Real m_radius;
};

#include "Bound.inl"

#endif
	